1. Field of the Invention
This invention relates to apparatus and methods for distributing drivers, and more particularly to apparatus and methods for distributing drivers from a storage system to one or more connected host systems.
2. Background of the Invention
Storage networks, such as storage area networks (SANs), are used to interconnect different types of data storage systems with different types of servers (also referred to herein as “host systems”). To enable communication between the storage systems and the servers, each server (which may be characterized by a server type as well the operating system that runs on the server) may require a unique driver for each type of storage system with which it communicates. Similarly, each storage system within the storage network may communicate with different types of servers, each of which may require a unique driver to communicate with the storage system.
A system administrator may be responsible for ensuring that appropriate drivers are installed on each server that connects to a storage system. This can be a laborious and time-consuming process since the drivers often need to be located and installed manually. This problem may be exacerbated by the fact that drivers for a storage system may be updated frequently, often with each firmware or microcode release for the storage system. Thus, the system administrator may need to continually monitor and update the servers in the network to ensure that the latest drivers are installed.
As an example, most open system servers support customized multipath I/O (MPIO) device drivers to make the default MPIO drivers more robust and useful when attaching to storage systems that support multipathing. Each storage system typically requires a customized MPIO device driver that must be manually installed on the open system server in order for the server to recognize the type of storage system and optimize settings for the storage system. For example, the IBM DS8000™ enterprise storage system provides customized MPIO device drivers for each type of operating system (OS) that it supports.
A single server attached to multiple different types of storage systems may require unique MPIO device drivers for each attached storage system. For example, to utilize MPIO functionality for two different IBM storage systems (the DS8000™ and DS4000™, for example), a server may require two different MPIO device drivers. This can be problematic since a customer may have hundreds of servers that need to have their drivers manually updated. This problem may be exacerbated by the fact that a new MPIO device driver may be released for each supported operating system with each major code release, which may occur several times per year. This problem may also be compounded by the fact that, for most open system servers, installing new MPIO drivers may require a system administrator to temporarily suspend I/O to the servers, resulting in server downtime.
In view of the foregoing, what is needed is apparatus and method to more effectively distribute drivers to one or more host systems connected to a storage system. Further needed are apparatus and methods for automatically and seamlessly updating the drivers on connected host systems when new drivers are released. Yet further needed are apparatus and methods to monitor the current configuration of each host system connected to a storage system so that appropriate drivers may be transmitted to each host system.